Skip to content

fix(build): ensure 'desc' key exists in snippet and source properties#127

Merged
biz87 merged 1 commit intobetafrom
fix/snippet-properties-desc
Mar 10, 2026
Merged

fix(build): ensure 'desc' key exists in snippet and source properties#127
biz87 merged 1 commit intobetafrom
fix/snippet-properties-desc

Conversation

@Ibochkarev
Copy link
Member

@Ibochkarev Ibochkarev commented Mar 3, 2026

Описание

Исправление ошибок при сборке пакета, когда у свойств сниппетов и источников отсутствует ключ desc. Добавлена инициализация пустой строки для desc, если ключ отсутствует в определении свойства.

Тип изменений

  • Исправление бага (non-breaking change)
  • Новая функциональность (non-breaking change)
  • Breaking change (изменение, ломающее обратную совместимость)
  • Рефакторинг (без изменения функциональности)
  • Документация
  • Другое (опишите):

Связанные Issues

https://modx.pro/components/25458#comment-146331

Как это было протестировано?

  • Ручное тестирование
  • Автоматические тесты (PHPStan, ESLint)
  • Тестирование на разных версиях PHP/MODX

Изменения:

  • resolver_04_sources.php: добавлена проверка и инициализация desc для свойств источников
  • resolver_08_snippet_properties.php: добавлена проверка array_key_exists('desc') перед обращением к ключу, исправлено чтение currentDesc из обновлённого массива $properties

Скриншоты (если применимо)

Не применимо.

Чеклист

  • Код соответствует стилю проекта
  • Добавлены/обновлены комментарии в сложных местах
  • Изменения не ломают существующую функциональность
  • Лексиконы добавлены на двух языках (ru/en)
  • PHPStan проходит без новых ошибок
  • ESLint проходит без ошибок (для JS/Vue изменений)
  • Обновлён CHANGELOG.md (для значимых изменений)

Дополнительные заметки

Исправление предотвращает предупреждения/ошибки при array_key_exists и обращении к несуществующему ключу desc в определениях свойств.

- Add default empty 'desc' for source properties in resolver_04_sources
- Add default empty 'desc' for snippet properties in resolver_08_snippet_properties
- Fix currentDesc reading from updated properties array in resolver_08
@Ibochkarev Ibochkarev requested a review from biz87 March 3, 2026 05:24
@Ibochkarev Ibochkarev marked this pull request as ready for review March 3, 2026 05:25
@Ibochkarev Ibochkarev self-assigned this Mar 9, 2026
Copy link
Member

@biz87 biz87 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review: PR #127

Чистый, минимальный фикс. Оба resolver'а корректно обрабатывают отсутствие ключа desc в properties.

resolver_04_sources.php

Дополнительный цикл после merge — логично. Проверка is_array($prop) защищает от скалярных значений. Чисто.

resolver_08_snippet_properties.php

Два изменения:

  1. Инициализация $properties[$propName]['desc'] = '' перед логикой сравнения — предотвращает warning.

  2. $propDef['desc'] ?? ''$properties[$propName]['desc'] ?? '' — читает из актуального массива, а не из копии foreach. Функционально результат тот же (?? вернул бы '' в обоих случаях), но семантически правильнее читать из модифицируемой структуры.

$changed = true при добавлении desc технически избыточен — следующее сравнение $currentDesc !== $newDesc ('' !== 'ms3_prop_...') всегда true и тоже выставит $changed. Но не вредит и делает намерение явным.

Замечаний нет. LGTM.

@biz87 biz87 merged commit 14b6517 into beta Mar 10, 2026
@Ibochkarev Ibochkarev deleted the fix/snippet-properties-desc branch March 10, 2026 11:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants